package com.saybiu.dao;

import com.saybiu.domain.Like;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author: liming
 * @Date: 2021/4/17 14:34
 */
public interface LikeDao {
    /**
     * 通过id查询点赞和被点赞
     * @param userId
     * @param beLikedUserId
     * @return like集合
     */
    List<Like> selectLikes(@Param("userId") Integer userId,@Param("beLikedUserId") Integer beLikedUserId);
    /**
     * 给帖子点赞 帖子点赞量自增 1
     * @param userId 用户id
     * @param postId 帖子id
     * @param postUrl 帖子路径
     * @param likeTime 点赞时间
     * @return 影响行数
     */
    int addLikePost(@Param("userId") Integer userId,@Param("postId") Integer postId,
                    @Param("postUrl") String postUrl,@Param("likeTime") String likeTime);

    /**
     * 查询用户点赞是否重复
     * @param userId
     * @param postId
     * @return
     */
    Like selectLikeRepeat(@Param("userId") Integer userId, @Param("postId") Integer postId);

    /**
     * 删除点赞表用户点赞记录
     * @param userId
     * @param postId
     * @return 影响行数
     */
    int deleteLikePost(@Param("userId") Integer userId, @Param("postId") Integer postId);
    /**
     * 查询是否给帖子评论已点赞
     * @param userId
     * @param commentId
     * @return
     */
    Integer selectLikeByUserIdAndUserLikeCommentId(@Param("userId") Integer userId, @Param("commentId") Integer commentId);

    /**
     * 给帖子评论点赞
     * @param like
     * @return
     */
    Integer addLikePostReply(Like like);

    /**
     * 取消对帖子评论的点赞
     * @param userId
     * @param commentId
     * @return
     */
    Integer deleteLikePostReply(@Param("userId") Integer userId, @Param("commentId") Integer commentId);


    /**
     * 查询是否给评论的评论已点赞
     * @param userId
     * @param replyCommentId
     * @return
     */
    Integer selectLikeByUserIdAndReplyCommentId(@Param("userId") Integer userId, @Param("replyCommentId") Integer replyCommentId);

    /**
     * 给评论的评论点赞
     * @param like
     * @return
     */
    Integer addLikeReplyComment(Like like);

    /**
     * 取消评论的评论点赞
     * @param userId
     * @param replyCommentId
     * @return
     */
    Integer deleteLikeReplyComment(@Param("userId") Integer userId, @Param("replyCommentId") Integer replyCommentId);
}
